package org.facyt.vacas.dao;


import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.facyt.vacas.entities.login.Grupo;
import org.facyt.vacas.entities.vacas.Clasificacion;
import org.facyt.vacas.entities.vacas.Componente;
import org.facyt.vacas.entities.vacas.ComponenteValor;
import org.facyt.vacas.entities.vacas.MateriaPrima;
import org.facyt.vacas.entities.vacas.Unidad;


public interface MateriaPrimaDAO {

	public MateriaPrima getMateriaPrimaById(Integer id) throws Exception ;

	public MateriaPrima nuevaMateriaPrima(Grupo grupoUsuario, String descripcion, Unidad unidad, BigDecimal costo, Clasificacion clasificacion) throws Exception;

	public MateriaPrima updateMateriaPrima(long idMP,Unidad unidad, BigDecimal costo, Clasificacion clasificacion, String nombre) throws Exception;

	public MateriaPrima updateMateriaPrima(long idMP,Unidad unidad, BigDecimal costo, Clasificacion clasificacion) throws Exception;

	public List<MateriaPrima> getAllMateriaPrima(long idgrupodelusuario) throws Exception;

	public ComponenteValor getComponenteFromComposicion(MateriaPrima mp, Componente componente);

	int getCalculoColumnas(ArrayList<MateriaPrima> lista);

	public String toStringCodDescrip(MateriaPrima materiaPrima);
	
	public String getCostoXUnidadString(MateriaPrima materiaPrima, BigDecimal costo);

	public Float getCantidadCalcioFromComposicion(MateriaPrima mp);

	public MateriaPrima setearCostoMP(MateriaPrima mp, BigDecimal costoMPaportada);

	ComponenteValor getComponenteFromComposicion(MateriaPrima mp,
			long componente);

	public MateriaPrima getMateriaPrimaByNombre(String nombre)throws Exception;
	public MateriaPrima getMateriaPrimaByNombreYGrupo(String nombre, long grupo)throws Exception;
	
}
